// 引入 uni-ajax 模块
import ajax from '@/uni_modules/u-ajax/js_sdk'
// #ifdef H5
const baseURL = '/storage-cabinet';
// #endif
// #ifdef MP-WEIXIN
const baseURL = 'https://nsycadmin.nsioi.com/storage-cabinet'; // 测试环境
// const baseURL = 'http://129.204.1.55:8080/storage-cabinet'; // 测试环境 
// const baseURL = 'https://admin.bmc2f.com/storage-cabinet'; // 测试环境 http://129.204.1.55:8081/storage-miniapp/
// const baseURL = 'https://admin.codj.net/storage-cabinet'; // 正式环境
// #endif


// 创建请求实例
const instance = ajax.create({
  // 初始配置
  baseURL
})

// 添加请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求前做些什么
    config.header['X-Access-Token'] = getApp().globalData.token;
    const hideLoad = config.hideLoad;
    if (!hideLoad) {
      uni.showLoading({
        title: '加载中'
      })
    }
    return config
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做些什么
    if (response.data.code === 200 || response.data.code === 0) {
      uni.hideLoading();
      return response.data
    } else {
      uni.showToast({
        icon: 'none',
        title: response.data.message || '网络错误，请稍候再试'
      })
      return Promise.reject(error.data)
    }
  },
  error => {
    // 对响应错误做些什么
    if (error.statusCode === 500) {
      // 未登录跳转登录页
      uni.reLaunch({
        url: '/pages/account/login'
      });
    }
    uni.hideLoading();
    return Promise.reject(error.data)
  }
)

// 导出 create 创建后的实例
export default instance
